fn display_array(arr: &[i32]) {
    println!("{arr:?}");
}
//把&[i32]改成泛型&[T]
//针对T增一个限制std::fmt::Debug为了格式化输出需要arr特征
//N 就是 const 泛型，定义的语法是 const N: usize，表示 const 泛型 N ，它基于的值类型是 usize
fn dis_arr<T: std::fmt::Debug>(arr: &[T]) {
    println!("{arr:?}");
}
//解决数组长度问题,引入const泛型来限制数组长度防止数据类型panic!
fn dis_a<T: std::fmt::Debug, const N: usize>(arr: &[T; N]) {
    println!("{arr:?}");
}
fn main() {
    let arr: [i32; 3] = [1, 3, 5];
    display_array(&arr);
    let arr: [i32; 2] = [1, 3];
    display_array(&arr);
    let arr: [char; 3] = ['中', '国', '人'];
    dis_arr(&arr);
    let arr: [&str; 2] = ["我们", "中国人"];
    dis_arr(&arr);
    let arr: [String; 3] = [String::from("Deepseek"), String::from("openAI"), String::from("Chatgpt")];
    dis_a(&arr);
    let arr: [f64; 2] = [3.14, 3.1459];
    dis_a(&arr);
}
